![]() |
![]() |
|
Uvod v funkcijePreproste funkcijeAta Janez se pred mamo Mojco zelo rad baha s tem, kako dober je v matematiki. Ker zna tudi malo programirati, je sestavil nekaj funkcij, ki računajo preproste matematične izraze, a žal ne delajo tako, kot bi morale. Da pred mamo Mojco ne bo izpadel preveč trapasto, vas prosi, da mu pri sestavljanju funkcij malce pomagate. 1. podnalogaSestavite funkcijo
Uradna rešitevdef izracunaj(x, a, b): """Vrne vrednost izraza a*x + b.""" return a*x + b 2. podnalogaSestavite funkcijo
Uradna rešitevdef linearna_enacba(a, b): """Vrne rešitev linearne enačbe a*x + b = 0.""" return -b / a 3. podnalogaJanez sestavlja funkcijo, ki zna za katerokoli leto povedati ali je prestopno ali ni, vendar se mu je pri sestavljanju malce zataknilo. Zopet vas prosi, da mu priskočite na pomoč. Sestavite funkcijo
Pri tem ne uporabite stavka Uradna rešitevdef prestopno(leto): """Vrne True, če je leto prestopno in False sicer.""" return (leto % 400 == 0) or (leto % 4 == 0 and leto % 100 != 0) Računanje ploščinMama Mojca in ata Janez bosta v kopalnici položila nove ploščice, vendar se še vedno odločata o obliki ploščic, ki jih bosta uporabila. Njuna odločitev temelji predvsem na številu ploščic različnih oblik, ki jih bo potrebno kupiti, da pokrijeta celotno kopalnico. Pri odločitvi jima pomagajte tako, da izračunate ploščine različnih oblik ploščic. Te jima bodo kasneje v veliko pomoč pri izračunu števila ploščic, ki jih bosta potrebovala za svojo kopalnico. 1. podnalogaSestavite funkcijo
Namig: Nekaj o ploščini pravokotnika si lahko preberete tukaj. Uradna rešitevdef ploscina_pravokotnika(a, b): """Vrne ploščino pravokotnika s stranicama a in b.""" return a * b 2. podnalogaSestavite funkcijo
Namig: Nekaj o ploščini kroga si lahko preberete tukaj. Še en namig: V Pythonu obstaja vgrajena funkcija
Uradna rešitevimport math def ploscina_kroga(r): """Vrne ploščino kroga z radijem r.""" return math.pi * r**2 3. podnalogaSestavite funkcijo
Namig: Nekaj o ploščini pravilnega n-kotnika lahko preberete
tukaj.
Pri računanju si pomagajte z vgrajenimi funkcijami Še en namig: Kadar imamo podano stranico pravilnega Uradna rešitevimport math def ploscina_nkotnika(n, a): """Vrne ploščino pravilnega n-kotnika s stranico dolžine a.""" # Pravilni n-kotnik lahko razdelimo na n skladnih enakokrakih # trikotnikov, ki imajo vrh v središču n-kotnika. # Prvi način: # Naj bo a dolžina # osnovnice takega trikotnika, h pa njegova višina. Potem je # (a / 2) / h = tan(π/n) oziroma h = a / (2 * tan(π/n)). # Ploščina enega trikotnika je a * h / 2 = a * 2 / (4 * tan(π/n)). # Od tod sledi formula za ploščino n-kotnika. # return a**2 * n / (4 * math.tan(math.pi / n)) # Drugi način: # če uporabimo enačbo s spletne strani R = a / (2 * math.sin(math.pi/n)) return 1/2 * n * R**2 * math.sin(2 * math.pi / n) Delamo s številiMama Mojca in ata Janez sta se odpravila v kasino, kjer se bosta preizkusila v različnih igrah. 1. podnalogaDenar, ki ga bosta zaslužila, si bosta enakovredno razdelila. V primeru, da bosta oba skupaj izgubila nekaj denarja pa si bosta razdelila dolg, ki ga bosta naslednjič poizkusila priigrati nazaj. Zapišite funkcijo
Povprečju, ki ga računamo na tak način, rečemo aritmetična sredina. Uradna rešitevdef aritmeticna (a, b): """Funkcija vrne aritmetično sredino števil a in b.""" return (a + b)/2 2. podnalogaPoleg aritmetične poznamo tudi geometrično sredino.
Zapišite funkcijo
Namig: v Pythonu obstaja vgrajena funkcija Uradna rešitevimport math # da bomo lahko uporabili vgrajeno funkcijo za korenjenje def geometricna (a, b): """Funkcija vrne geometrično sredino števil a in b.""" return math.sqrt(a * b) 3. podnalogaKer ata Janez v igralnici kar naprej izgublja, se je Mojca odločila, da si bosta priigrane zneske od sedaj naprej delila drugače. Kar bosta priigrala, bosta najprej dala na kup, nato pa bosta dani znesek zaokrožila navzdol na eno decimalko. Ata Janez bo prejel le decimalni del dobljenega zneska, mama Mojca pa preostanek. Oziroma, če bo znesek negativen, bo naslednjič mama Mojca pomagala Janezu priigrati le decimalni del zneska, Janez pa bo moral priigrati vse ostalo. Če znesek, ki ga priigrata znaša recimo Sestavite funkcijo
Namig : Pomagajte si z vgrajenima funkcijama Uradna rešitevdef desetinke(x): """Vrne desetinke števila x.""" stevilo = 10 * abs(x) # premik decimalne pike v desno. # Ker python ostanke negativnih števil pri deljenju šteje drugače, kot si običajno predstavljamo, uporabimo abs celi_del = int(stevilo) deset = celi_del % 10 # desetinke so enice novega števila return deset 4. podnalogaMojca in Janez sta se spet domislila nove delitve denarja. V ta namen sta sestavila
funkcijo
ki naj bi vrnila celi del in prvi dve decimalki zneska
A podana funkcija ne dela vedno tako. Poiščite in odpravite napake! Uradna rešitevdef celi_decimalni(x): """Vrne celi in decimalni del števila x.""" celi_del = int(x) x = abs(x) decimalni_del = int((x - abs(celi_del))*100) return celi_del, decimalni_delMesto objave ob koncu projekta 15.9.2018 |